As it is generally known, screen names in “buddy lists” generated by existing instant messaging systems include visual displays of users' online status, including indications of which users are currently on-line and available for instant messaging sessions. These user representations are sometimes referred to as “live names”, and are helpful in supporting the real time communications provided in systems such as instant messaging. The on-line awareness provided through live names in a buddy list is an enabler with regard to instant messaging, since a user might initiate an instant messaging session if they are aware that another user is currently on-line. If the live name for a user in a buddy list indicates they are not currently on-line, then an alternative mode of communication might be selected to contact them, such as electronic mail (“e-mail”).
In collaborative systems users often work together on a single document. In these instances it is useful to know who else is working on the document at a point in time. Users can coordinate their efforts on the document, or it may reveal opportunities to collaborate on the document.
Some existing systems have attempted to provide indications of which documents are currently being edited by another user. In some such systems, users are provided with a cue when another user is viewing or editing a document, and may further be notified when a document has been changed. Some existing systems have also allowed initiation of an instant messaging system with another user that is currently editing a document. These systems do not scale in realistic operational environments.
In addition, some existing source code control systems have enabled users to lock documents when they open them, such that other users cannot open them, and such that other users can see when a document is locked. The indication that a document is locked is an indication that the document is reserved to another user. The locked status of a document is maintained persistently across logins and logouts of the reserving user. Users of such systems often reserve or lock many documents for extended periods of time while they update a set of documents. These systems provide no indication of whether a document is currently open by another user.
One possible solution to providing indications of whether documents are currently open would involve a user registering for each document they are interested in knowing the status of. A significant drawback of such an approach is that it doesn't scale well for use in many operational environments. In some contexts, each user may potentially access very large numbers of documents (e.g. millions of documents). Under such circumstances, it may be time consuming and impractical for a user to register to receive status information for each document they access.
For the above reasons it would be desirable to have a scalable system that enables users to conveniently determine which documents are currently opened by other users, and that does not require users to register for each document in which they are interested.